<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport"
        content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>Title</title>
</head>
<body>
<script>
  /*
  *  HTTP协议的主要特点
  *   1.简单快速 2.灵活 3.无连接（重点） 4.无状态（重点）
  *
  *  HTTP报文的组成部分
  *   1、请求报文
  *     请求行（包含http方法、页面地址、http协议和版本） 请求头（key value来告诉服务端我要什么内容） 空行（遇到空行就告诉服务端不在是请求头的部分了，会单做请求体简析） 请求体
  *   2、响应报文
  *     状态行 响应头 空行 响应体
  *
  *  HTTP方法
  *   get：获取资源
  *   post：传输资源
  *   put：更新资源
  *   delete：删除资源
  *   head：获得报文首部
  *
  *  POST和GET的区别
  *   get在浏览器回退时是无害的，而post会再次提交请求（必须）
  *   get产生的url地址可以被收藏，而post不可以
  *   get请求会被浏览器主动缓存，而post不会，除非手动设置（必须）
  *   get请求只能进行url编码，而post支持多种编码方式
  *   get请求参数会被完整保留在浏览器历史记录里，而post中的参数不会被保留（必须）
  *   get请求在url中传送的参数是有长度限制的，而post没有限制（必须）
  *   对参数的数据类型，get只接受ascll字符，而post没有限制
  *   get比post更不安全，因为参数直接暴露在url上，所以不能用来传递敏感信息
  *   get参数通过url传递，post放在request body 中（必须）
  *
  *  HTTP状态码
  *   1xx：指示信息 - 表示请求已接收，继续处理
  *   2xx：成功 - 表示请求已被成功接收
  *   3xx：重定向 - 要完成请求必须进行更进一步的操作
  *   4xx：客户端错误 - 请求有语法错误或请求无法实现
  *   5xx：服务器错误 - 服务器未能实现合法的请求
  *
  *   200：ok 客户端请求成功
  *   206：Partial Content： 客户发送了一个带有Range头的get请求， 服务器完成了它
  *   301：Moved Permanently：所请求的页面已经转移至新的url
  *   302：Found：所请求的页面已经临时转移至新的url
  *   304：Not Modified：客户端有缓冲的文档并发出了一个条件性的请求，服务器告诉客户，原来缓冲的文档还可以继续使用
  *   400：Bad Request：客户端请求有语法错误，不能被服务器所理解
  *   401：Unauthorized：请求未经授权，这个状态代码必须和www-Authenticate报头域一起使用
  *   403：Forbidden：对被请求页面的访问被禁止
  *   404：Not Found： 请求资源不存在
  *   500：Internal Server Error：服务器发生不可预期的错误原来缓冲的文档还可以继续使用
  *   503：Server Unavailable：请求未完成，服务器临时过载或当机，一段时间后可能恢复正常
  *
  *  什么是持久连接
  *   http是支持持久连接的，但是只有1.1版本支持
  *   http协议采用"请求-应答"模式，当使用普通模式，即非Keep-Alive模式时，每个请求、应答客户和服务器都要新建一个连接，完成之后立即断开连接（http协议为无连接的协议）
  *
  *   当使用Keep-Alive模式（又称持久连接、连接重用）时，Keep-Alive 功能使客户端到服务器端的连接持续有效，当出现对服务器的后继请求时，Keep-Alive功能避免了建立或者重新建立连接
  *
  *  什么是管线化
  *   在使用持久连接的情况下，某个连接上消息的传递类似于
  *     请求1-》响应1-》请求2-》响应2-》请求3-》响应3
  *
  *   某个连接上的消息变成了类似这样（这个就是管线化）
  *     请求1-》请求2-》请求3-》响应1-》响应2-》响应3
  *
  *
  * */
</script>
</body>
</html>
